/*
 * ipq_protocols_osdpi.h
 * Copyright (C) 2009-2011 by ipoque GmbH
 * 
 * This file is part of OpenDPI, an open source deep packet inspection
 * library based on the PACE technology by ipoque GmbH
 * 
 * OpenDPI is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * OpenDPI is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 * 
 * You should have received a copy of the GNU Lesser General Public License
 * along with OpenDPI.  If not, see <http://www.gnu.org/licenses/>.
 * 
 */

#ifndef PROTOCOLS_H
#define PROTOCOLS_H

#define PROTOCOL_UNKNOWN                 0
#define PROTOCOL_FTP                     1
#define PROTOCOL_MAIL_POP                2
#define PROTOCOL_MAIL_SMTP               3
#define PROTOCOL_MAIL_IMAP               4
#define PROTOCOL_DNS              		5
#define PROTOCOL_IPP						6
#define PROTOCOL_HTTP					7
#define PROTOCOL_MDNS					8
#define PROTOCOL_NTP						9
#define PROTOCOL_NETBIOS					10
#define PROTOCOL_NFS						11
#define PROTOCOL_SSDP					12
#define PROTOCOL_BGP						13
#define PROTOCOL_SNMP					14
#define PROTOCOL_XDMCP					15
#define PROTOCOL_SMB						16
#define PROTOCOL_SYSLOG					17
#define PROTOCOL_DHCP					18
#define PROTOCOL_POSTGRES				19
#define PROTOCOL_MYSQL					20
#define PROTOCOL_TDS						21
#define PROTOCOL_DIRECT_DOWNLOAD_LINK	22
#define PROTOCOL_I23V5					23
#define PROTOCOL_APPLEJUICE				24
#define PROTOCOL_DIRECTCONNECT			25
#define PROTOCOL_SOCRATES				26
#define PROTOCOL_WINMX					27
#define PROTOCOL_MANOLITO				28
#define PROTOCOL_PANDO					29
#define PROTOCOL_FILETOPIA				30
#define PROTOCOL_IMESH					31
#define PROTOCOL_KONTIKI					32
#define PROTOCOL_OPENFT					33
#define PROTOCOL_FASTTRACK				34
#define PROTOCOL_GNUTELLA				35
#define PROTOCOL_EDONKEY					36
#define PROTOCOL_BITTORRENT				37
#define PROTOCOL_OFF						38
#define PROTOCOL_AVI						39
#define PROTOCOL_FLASH					40
#define PROTOCOL_OGG						41
#define	PROTOCOL_MPEG					42
#define	PROTOCOL_QUICKTIME				43
#define	PROTOCOL_REALMEDIA				44
#define	PROTOCOL_WINDOWSMEDIA			45
#define	PROTOCOL_MMS						46
#define	PROTOCOL_XBOX					47
#define	PROTOCOL_QQ						48
#define	PROTOCOL_MOVE					49
#define	PROTOCOL_RTSP					50
#define PROTOCOL_FEIDIAN					51
#define PROTOCOL_ICECAST					52
#define PROTOCOL_PPLIVE					53
#define PROTOCOL_PPSTREAM				54
#define PROTOCOL_ZATTOO					55
#define PROTOCOL_SHOUTCAST				56
#define PROTOCOL_SOPCAST					57
#define PROTOCOL_TVANTS					58
#define PROTOCOL_TVUPLAYER				59
#define PROTOCOL_HTTP_APPLICATION_VEOHTV 60
#define PROTOCOL_QQLIVE					61
#define PROTOCOL_THUNDER					62
#define PROTOCOL_SOULSEEK				63
#define PROTOCOL_GADUGADU				64
#define PROTOCOL_IRC						65
#define PROTOCOL_POPO					66
#define PROTOCOL_UNENCRYPED_JABBER		67
#define PROTOCOL_MSN						68
#define PROTOCOL_OSCAR					69
#define PROTOCOL_YAHOO					70
#define PROTOCOL_BATTLEFIELD				71
#define PROTOCOL_QUAKE					72
#define PROTOCOL_SECONDLIFE				73
#define PROTOCOL_STEAM					74
#define PROTOCOL_HALFLIFE2				75
#define PROTOCOL_WORLDOFWARCRAFT			76
#define PROTOCOL_TELNET					77
#define PROTOCOL_STUN					78
#define PROTOCOL_IPSEC					79
#define PROTOCOL_GRE						80
#define PROTOCOL_ICMP					81
#define PROTOCOL_IGMP					82
#define PROTOCOL_EGP						83
#define PROTOCOL_SCTP					84
#define PROTOCOL_OSPF					85
#define PROTOCOL_IP_IN_IP				86
#define	PROTOCOL_RTP						87
#define PROTOCOL_RDP						88
#define PROTOCOL_VNC						89
#define PROTOCOL_PCANYWHERE				90
#define PROTOCOL_SSL						91
#define PROTOCOL_SSH						92
#define PROTOCOL_USENET					93
#define PROTOCOL_MGCP					94
#define PROTOCOL_IAX						95
#define PROTOCOL_TFTP					96
#define PROTOCOL_AFP						97
#define PROTOCOL_STEALTHNET				98
#define PROTOCOL_AIMINI					99
#define PROTOCOL_SIP						100
#define PROTOCOL_TRUPHONE				101
#define PROTOCOL_ICMPV6					102
#define PROTOCOL_DHCPV6					103
#define PROTOCOL_ARMAGETRON				104
#define PROTOCOL_CROSSFIRE				105
#define PROTOCOL_DOFUS					106
#define PROTOCOL_FIESTA					107
#define PROTOCOL_FLORENSIA				108
#define PROTOCOL_GUILDWARS				109
#define PROTOCOL_HTTP_APPLICATION_ACTIVESYNC		110
#define PROTOCOL_KERBEROS				111
#define PROTOCOL_LDAP					112
#define PROTOCOL_MAPLESTORY				113
#define PROTOCOL_MSSQL					114
#define PROTOCOL_PPTP					115
#define PROTOCOL_WARCRAFT3				116
#define PROTOCOL_WORLD_OF_KUNG_FU		117
#define PROTOCOL_MEEBO					118

#define LAST_IMPLEMENTED_PROTOCOL        118

#define MAX_SUPPORTED_PROTOCOLS IPOQUE_LAST_IMPLEMENTED_PROTOCOL

#define PROTOCOL_ALL 65535 

#define PROTOCOL_LONG_STRING "unknown","FTP","Mail_POP","Mail_SMTP","Mail_IMAP","DNS","IPP","HTTP","MDNS","NTP",\
	"NETBIOS","NFS","SSDP","BGP","SNMP","XDMCP","SMB","SYSLOG","DHCP","PostgreSQL","MySQL","TDS","DirectDownloadLink","I23V5",\
	"AppleJuice","DirectConnect","Socrates","WinMX","MANOLITO","PANDO","Filetopia","iMESH","Kontiki","OpenFT","Kazaa/Fasttrack",\
	"Gnutella","eDonkey","Bittorrent","OFF","AVI","Flash","OGG","MPEG","QuickTime","RealMedia","Windowsmedia","MMS","XBOX","QQ",\
	"MOVE","RTSP","Feidian","Icecast","PPLive","PPStream","Zattoo","SHOUTCast","SopCast","TVAnts","TVUplayer","VeohTV",\
	"QQLive","Thunder/Webthunder","Soulseek","GaduGadu","IRC","Popo","Jabber","MSN","Oscar","Yahoo","Battlefield","Quake",\
	"Second Life","Steam","Halflife2","World of Warcraft","Telnet","STUN","IPSEC","GRE","ICMP","IGMP","EGP","SCTP","OSPF",\
	"IP in IP","RTP","RDP","VNC","PCAnywhere","SSL","SSH","USENET","MGCP","IAX","TFTP","AFP","StealthNet","Aimini","SIP","Truphone",\
	"ICMPv6","DHCPv6","Armagetron","CrossFire","Dofus","Fiesta","Florensia","Guildwars","HTTP Application Activesync","Kerberos",\
	"LDAP","MapleStory","msSQL","PPTP","WARCRAFT3","World of Kung Fu","MEEBO"

#define PROTOCOL_SHORT_STRING "ukn","ftp","pop","smtp","imap","dns","ipp","http","mdns","ntp","netbios","nfs","ssdp",\
	"bgp","snmp","xdmcp","smb","syslog","dhcp","postgres","mysql","tds","ddl","i23v5","apple","directconnect","socrates","winmx",\
	"manolito","pando","filetopia","iMESH","kontiki","openft","fasttrack","gnutella","edonkey","bittorrent","off","avi",\
	"flash","ogg","mpeg","quicktime","realmedia","windowsmedia","mms","xbox","qq","move","rtsp","feidian","icecast","pplive",\
	"ppstream","zattoo","shoutcast","sopcast","tvants","tvuplayer","veohtv","qqlive","thunder","soulseek","gadugadu","irc",\
	"popo","jabber","msn","oscar","yahoo","battlefield","quake","secondlife","steam","hl2","worldofwarcraft","telnet","stun",\
	"ipsec","gre","icmp","igmp","egp","sctp","ospf","ipip","rtp","rdp","vnc","pcanywhere","ssl","ssh","usenet","mgcp","iax",\
	"tftp","afp","stealthnet","aimini","sip","truphone","icmpv6","dhcpv6","armagetron","crossfire","dofus","fiesta","florensia",\
	"guildwars","httpactivesync","kerberos","ldap","maplestory","mssql","pptp","warcraft3","wokf","meebo"

#endif
